package jdbc;

import java.sql.*;

/**
 * @ProjectName: basic-mybatis
 * @Package: jdbc
 * @ClassName: ConnectDb
 * @Author: xzl
 * @Description: 连接数据库
 * @Date: 2021/8/27 20:08
 */
public class ConnectDb {

    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            // 加载数据库驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 通过驱动管理类获取数据库链接
            connection =
                    DriverManager.getConnection("jdbc:mysql://192.168.0.5:3306/lg?characterEncoding=utf-8", "xzl", "xzl.123");
            // 定义sql语句？表示占位符
            String sql = "select * from sys_user where user_name = ?";
            // 获取预处理statement
            preparedStatement = connection.prepareStatement(sql);
            // 设置参数，第一个参数为sql语句中参数的序号(从1开始)，第二个参数为设置的参数值
            preparedStatement.setString(1, "小明");
            // 向数据库发出sql执行查询，查询出结果集
            resultSet = preparedStatement.executeQuery();
            // 遍历查询结果集
            UserDO user = new UserDO();
            while (resultSet.next()) {
                int id = resultSet.getInt("user_id");
                String username = resultSet.getString("user_name");
                int age = resultSet.getInt("age");
                // 封装User
                user.setUserName(username);
                user.setUserId(id);
                user.setAge(age);
            }
            System.out.println(user);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (preparedStatement != null) {
                try {
                    preparedStatement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }

        }
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

